summaryrefslogtreecommitdiff
path: root/src/app/(home)/posts/[slug]/page.client.tsx
diff options
context:
space:
mode:
authorBertrand Yuan <bert.yuan@outlook.com>2025-12-16 00:25:04 +0800
committerGitHub <noreply@github.com>2025-12-16 00:25:04 +0800
commit39c83fbb69ef06d2d56790d75abc254ba7e34394 (patch)
treedd006593448c3500bdcb414af3b4656f7a7683d4 /src/app/(home)/posts/[slug]/page.client.tsx
parent48b07bc308a35734a6a7a305c8fdccbfa47de7d8 (diff)
parent785371bb3eccca455e5ce5fccbe9b6e3752a03f6 (diff)
Merge pull request #1 from bertyuan/feat-introduce-payloadv1.0
Feat: introduce payload
Diffstat (limited to 'src/app/(home)/posts/[slug]/page.client.tsx')
-rw-r--r--src/app/(home)/posts/[slug]/page.client.tsx57
1 files changed, 0 insertions, 57 deletions
diff --git a/src/app/(home)/posts/[slug]/page.client.tsx b/src/app/(home)/posts/[slug]/page.client.tsx
deleted file mode 100644
index 7a97f56..0000000
--- a/src/app/(home)/posts/[slug]/page.client.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-'use client';
-import {
- UploadIcon as ShareIcon,
- type UploadIconHandle as ShareIconHandle,
-} from '@/components/icons/animated/upload';
-import { Icons } from '@/components/icons/icons';
-import { Button } from '@/components/ui/button';
-import { cn } from '@/lib/utils';
-import { Comments } from '@fuma-comment/react';
-import { redirect } from 'next/navigation';
-import { useRef } from 'react';
-import { toast } from 'sonner';
-import { useCopyToClipboard } from 'usehooks-ts';
-
-export function Share({ url }: { url: string }): React.ReactElement {
- const iconRef = useRef<ShareIconHandle>(null);
- const [_, copyToClipboard] = useCopyToClipboard();
-
- const onClick = async (): Promise<void> => {
- await copyToClipboard(`${window.location.origin}${url}`);
- toast.success('Copied to clipboard!', {
- icon: <Icons.copied className='size-4' />,
- description: 'The post link has been copied to your clipboard.',
- });
- };
-
- return (
- <Button
- className={cn('group gap-2')}
- variant={'secondary'}
- onClick={onClick}
- onMouseEnter={() => iconRef.current?.startAnimation?.()}
- onMouseLeave={() => iconRef.current?.stopAnimation?.()}
- >
- <ShareIcon className='size-4 hover:bg-transparent' ref={iconRef} />
- Share Post
- </Button>
- );
-}
-
-export function PostComments({
- slug,
- className,
-}: { slug: string; className?: string }) {
- return (
- <Comments
- page={slug}
- className={cn('w-full', className)}
- auth={{
- type: 'api',
- signIn: () => {
- redirect('/login');
- },
- }}
- />
- );
-}